package com.lx.sync.core.validator;

import com.lx.sync.core.model.SyncBaseDTO;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;

/**
 * 校验结果
 */
@Data
public class ValidationResult {

    /**
     * 是否通过校验
     */
    private boolean valid;

    /**
     * 校验错误信息
     */
    private List<String> errorMessages = new ArrayList<>();

    /**
     * 无效数据列表
     */
    private List<SyncBaseDTO> invalidData = new ArrayList<>();

    /**
     * 添加错误信息
     * @param message 错误信息
     */
    public void addError(String message) {
        this.errorMessages.add(message);
        this.valid = false;
    }

    /**
     * 添加无效数据
     * @param data 无效数据
     */
    public void addInvalidData(SyncBaseDTO data) {
        this.invalidData.add(data);
    }

    /**
     * 合并校验结果
     * @param other 其他校验结果
     */
    public void merge(ValidationResult other) {
        if (!other.isValid()) {
            this.valid = false;
            this.errorMessages.addAll(other.getErrorMessages());
            this.invalidData.addAll(other.getInvalidData());
        }
    }
}
